﻿#pragma once
enum SpellID
{
	SpellID_None = 0,
	Apocalypse = 275699, // 天启
	Festering_Wound = 194310,	// 溃烂之伤
	Raise_Dead = 46584, // 亡者复生
	Death_and_Decay = 43265, // 枯萎凋零
	Dark_Transformation = 63560, // 黑暗突变
	Death_Strike = 49998, // 灵界打击
	Dark_Succor = 101568, // 黑暗援助
	Outbreak = 77575, // 爆发
	Virulent_Plague = 191587, // 恶性瘟疫
	Death_Coil = 47541, // 凋零缠绕
	Sudden_Doom = 81340, // 末日突降, 你的自动攻击会有一定几率使你的下一次凋零缠绕不消耗符文能量。
	Clawing_Shadows = 207311, // 暗影之爪, 造成(40% of Attack power)点暗影伤害，触发一层溃烂之伤。
	Festering_Strike = 85948, // 脓疮打击 ,攻击造成(101.088% of Attack power)点物理伤害，并对目标施加2到3层溃烂之伤效果。 [ 溃烂之伤 一道脓疱伤口，在死亡或被天灾打击击中时爆发，造成(20 % of Attack power)点暗影伤害，并产生3点符文能量。]
	Death_Grip = 49576, // 死亡之握, 运用笼罩万物的能量，将目标拉到你面前
	Chains_of_Ice = 45524, // 寒冰锁链 , 使用冰冷的锁链束缚目标，使其移动速度降低70%，持续8 sec。
	Mind_Freeze = 47528, // 以极寒的能量攻击目标的心智，打断目标施法，并且使该系法术在3 sec内无法施放。
	Army_of_the_Dead = 42650, // 亡者大军  召唤一支食尸鬼军团为你作战，攻击一切可以攻击的目标，持续30 sec。
	////////

	Dancing_Rune_Weapon = 49028, //符文刃舞 召唤一把符文武器，复制你的近战攻击，并强化你的防御，持续8秒。
	Marrowrend = 195182,	// 骨髓分裂 猛击目标，造成(37.557% of Attack power)点物理伤害，并获得3层白骨之盾。
	Bone_Shield = 195181,	// 白骨之盾, 用旋转的白骨屏障将你包围，使你的护甲值提高(40 * Strength / 100)点,急速提高10%。每次对你发动的近战攻击都会消耗一层效果。持续30 sec或直到所有层数被消耗完。
	Blood_Boil = 50842,		// 血液沸腾, 造成(30 % of Attack power)点暗影伤害，并使10码范围内的所有敌人感染  血之疫病。血之疫病 暗影疾病，在24 sec内从目标身上吸取64点生命。
	Blood_Plague = 55078,	// 血之疫病 暗影疾病，在24 sec内从目标身上吸取64点生命。
	Hemostasis = 273946,	// 鲜血禁闭, 血液沸腾每击中一个敌人使你的下一次灵界打击的伤害和治疗量提高8%，最多叠加5次。
	Hemostasis_buff = 273947,  // 鲜血禁闭 buff
	Dancing_Rune_Weapon_buff = 81256, // 符文刃舞buff 
	Heart_Strike = 206930,	//	心脏打击, 立即对目标及附近的另外1名敌人发动打击，造成0点物理伤害，并使其移动速度降低20%，持续8 sec。
	Crimson_Scourge = 81136,//	赤色天灾	当你的自动攻击击中受到血之疫病影响的目标时，有几率重置枯萎凋零的冷却时间，并使其不消耗符文。
	Crimson_Scourge_Buff = 81141,	// 赤色天灾	buff 
	Death_s_Caress = 195292, // 死神的抚摩 伸出死灵触手，对目标造成(14.742% of Attack power)点暗影伤害，并使其感染血之疫病。
	//
	buff_225788 = 225788,		//
	buff_93825 = 93825,		//
	Resounding_Protection = 269279,	// 回声防护	每30秒获得一次吸收护盾，可以吸收14759点伤害，持续30 sec。
	Ossuary = 219788,// 埋骨之所
	Building_Pressure = 280385, // 压力渐增
	Unholy_Strength = 53365,// 不洁之力
	Blood_Shield_buff = 77535, // 鲜血护盾 buff
	Boiling_Time = 269887,	// 沸腾时刻
	Death_and_Decay_buff = 188290, // 枯萎凋零buff
	Heart_Strike_buff = 228645,	//	心脏打击buff
	//
	charge = 100,			// 冲锋
	rampage = 184367,		// 暴怒
	//
	Rejuvenation = 774,		// 回春术 buff
	Regrowth = 8936,		// 愈合 buff
	Lifebloom = 33763,		// 生命绽放 buff
	Grove_Tending = 279793,	// 林地护理 迅捷治疗 buff
	Wild_Growth = 48438,	// 野性成长 buff
	Cenarion_Ward = 102351,	// 塞纳里奥结界 buff
	Cenarion_Ward_2 = 102352,	// 塞纳里奥结界 buff
	Efflorescence = 145205,	// 百花齐放
	Swiftmend = 18562,		// 迅捷治愈
	Innervate = 29166,		// 节能
	Clearcasting = 16870,	// 节能施法
	Rebirth = 20484,		// 复生
	Revive = 50769,			// 起死回生
	Ironbark = 102342,		// 铁木树皮
	//
	Incarnation_Chosen_of_Elune = 102560,	// 化身：艾露恩之眷
	Starsurge = 78674,		// 星涌术
	Typhoon = 132469,		// 台风
	Starlord = 279709,		// 星辰领主 buff
	Arcanic_Pulsar = 287773,	// 奥能脉冲星 奥能脉冲星	艾泽里特能量	需要 德鲁伊	​（平衡、平衡）	星涌术的伤害提高1647点。每施放9个星涌术，便可获得超凡之盟，持续6秒。
	Celestial_Alignment = 194223,	// 超凡之盟 action，buff
	Lunar_Empowerment = 164547,	// 月光增效
	Solar_Empowerment = 164545,	// 日光增效
	Solar_Wrath = 5176,			// 阳炎之怒 恢复德 耗蓝
	Sunfire = 93402,			// 阳炎术
	Moonfire = 8921,			// 月火术
	Starfall = 191034,			// 星辰坠落
	Moonfire_buff = 164812,		// 月火术
	Sunfire_buff = 164815,		// 日光术
	Lunar_Strike = 194153,		// 明月打击 action
	Solar_Wrath_Balance = 190984,	// 阳炎之怒 平衡德 action 不耗蓝
	Warrior_of_Elune = 202425,	// 艾露恩的战士 action buff

	Moonkin_Form = 24858,		// 枭兽形态 Moonkin Form
	Memory_of_Lucid_Dreams = 298357,	// 清醒梦境之忆
	Concentrated_Flame = 295373,	// 火红烈焰
	Reaping_Flames = 310690,	// 收割火焰
};

int GetHealExceptHpTotal(SpellID spell_id, int duration);
void InitHealSpellConfigConfig();

struct SpellCostMana
{
	SpellID spell_id = SpellID_None;
	int		cost_mana = 0;
	int		power_type = 0;
};

SpellCostMana GetSpellCostMana(SpellID spell_id);
void InitSpellCostManaConfig();

void InitSpellAddAstralPowerConfig();
// RESOURCE_ASTRAL_POWER
int GetSpellAp(SpellID spell_id);

SpellID GetSpellFreeBuff(SpellID spell_id);
// 		{Death_Strike, {Death_Strike,L"", L"灵界打击", true}},
// 		{Outbreak, {Outbreak,L"", L"爆发", true}},
// 		{Apocalypse, {Apocalypse,L"", L"天启", true}},
// 		{Death_Coil, {Death_Coil,L"", L"凋零缠绕", true}},
// 		{Festering_Strike, {Festering_Strike,L"", L"脓疮打击", true}},
// 		{Raise_Dead, {Raise_Dead, L"",L"亡者复生", true}},
// 		{Dark_Transformation, {Dark_Transformation, L"",L"黑暗突变", true}},
// 		{Death_Grip, {Death_Grip,L"", L"死亡之握", true}},
// 		{Clawing_Shadows, {Clawing_Shadows, L"",L"暗影之爪", true}},
// 		{Chains_of_Ice, {Chains_of_Ice, L"", L"寒冰锁链", true}},
// 		{Death_and_Decay, {Death_and_Decay, L"",L"枯萎凋零", true}},
// 		{Mind_Freeze, {Mind_Freeze, L"",L"心灵冰冻", true}},
// 		{Army_of_the_Dead, {Army_of_the_Dead, L"", L"亡者大军", true}},
// 		{Dancing_Rune_Weapon, {Dancing_Rune_Weapon, L"",L"符文刃舞", true}},
// 		{Bone_Shield, {Bone_Shield, L"",L"白骨之盾", true}},
// 		{Blood_Boil, {Blood_Boil, L"",L"血液沸腾", true}},
// 		{Marrowrend, {Marrowrend, L"",L"骨髓分裂", true}},
// 		{Heart_Strike, {Heart_Strike, L"",L"心脏打击", true}},
// 		{Death_s_Caress, {Death_s_Caress, L"",L"死神的抚摩", true}},
// 		{buff_225788, {buff_225788, L"",L"使者印记", true}},
// 		{buff_93825, {buff_93825, L"",L"奥格瑞玛勇士", true}},
// 		{Resounding_Protection, {Resounding_Protection, L"",L"回声防护", true}},
// 		{Ossuary, {Ossuary, L"",L"埋骨之所", true}},
// 		{Building_Pressure, {Building_Pressure, L"",L"压力渐增", true}},
// 		{Crimson_Scourge_Buff, {Crimson_Scourge_Buff, L"",L"赤色天灾buff ", true}},
// 		{Hemostasis_buff, {Hemostasis_buff, L"",L"鲜血禁闭 buff ", true}},
// 		{Unholy_Strength, {Unholy_Strength, L"",L"不洁之力 buff ", true}},
// 		{Blood_Shield_buff, {Blood_Shield_buff, L"",L" 鲜血护盾", true}},
// 		{Dancing_Rune_Weapon_buff, {Dancing_Rune_Weapon_buff, L"",L" 符文刃舞buff ", true}},
// 		{Boiling_Time, {Boiling_Time, L"",L" 沸腾时刻 ", true}},
// 		{Death_and_Decay_buff, {Death_and_Decay_buff, L"",L" 枯萎凋零buff ", true}},
// 		{Blood_Plague, {Blood_Plague, L"",L" 血之疫病 ", true}},
// 		{Heart_Strike_buff, {Heart_Strike_buff, L"",L" 血之疫病 ", true}},
//enum 

// https://wow.gamepedia.com/API_GetShapeshiftFormID
enum kFormID {
	kf_Cat_Form = 1,
	kf_Moonkin_Form = 31,
	kf_Travel_Form = 3,
	kf_Swift_Flight_Form = 27,
	kf_Flight_Form = 29,
};